package algorithm.middle;

import java.util.Deque;
import java.util.LinkedList;
import java.util.Stack;

/**
 * 给你一个整数数组 nums ，判断这个数组中是否存在长度为 3 的递增子序列。
 *
 * 如果存在这样的三元组下标 (i, j, k) 且满足 i < j < k ，使得 nums[i] < nums[j] < nums[k] ，返回 true ；否则，返回 false 。
 *
 * 来源：力扣（LeetCode）
 * 链接：https://leetcode-cn.com/problems/increasing-triplet-subsequence
 * 著作权归领扣网络所有。商业转载请联系官方授权，非商业转载请注明出处。
 */
public class IncreasingTriplet334 {

    /**
     * 中间值。
     *
     * 接着，我们遍历数组，每遇到一个数字，我们将它和 small 和 mid 相比，若小于等于 small ，则替换 small；
     * 否则，若小于等于 mid，则替换 mid；否则，若大于 mid，则说明我们找到了长度为 3 的递增数组！
     *
     * 作者：fxxuuu
     * 链接：https://leetcode-cn.com/problems/increasing-triplet-subsequence/solution/c-xian-xing-shi-jian-fu-za-du-xiang-xi-jie-xi-da-b/
     * 来源：力扣（LeetCode）
     * 著作权归作者所有。商业转载请联系作者获得授权，非商业转载请注明出处。
     * @param nums    2  5   6   2   7
     * @return
     */
    public boolean increasingTriplet(int[] nums) {
        if (nums.length<3) return false;
        int small = Integer.MAX_VALUE;
        int mid = Integer.MAX_VALUE;
        for (int x:nums){
            if (x<=small){
                small = x;
            }else if(x<=mid){
                mid = x;
            }else {
                return true;
            }
        }
        return false;
    }


    public static void main(String[] args) {
        Thread thread = new Thread(() -> {

        });
        thread.start();
    }
}
